﻿#ifndef CLIENTHANDLE_H
#define CLIENTHANDLE_H

#include <QObject>
#include <QRunnable>
#include <memory>
#include <QTcpSocket>

class ClientHandle : public QObject, public QRunnable
{
    Q_OBJECT
public:
    explicit ClientHandle(QObject *parent = nullptr);

    // 设置套接字
    void SetSocket(qintptr sock);

    // 重写run函数
    void run()override;

    // 处理json逻辑
    void process(const QByteArray &data);

    // 回传给客户端
    void WriteToClient(const QByteArray &data);

signals:

public slots:

private:
    qintptr sock;
    std::shared_ptr<QTcpSocket> sockPtr; // 智能指针，该指针可以管理一个QTcpSocket类型的对象
    QByteArray buffer; // 自定义缓冲区
};

#endif // CLIENTHANDLE_H
